Conventional broadband communication products, such as television set top boxes, have a system clock that is slaved to one or more pieces of upstream head end equipment. Without slaving the clocks, a two clock system would drift. Such drifting could eventually cause an input data buffer and/or an output data buffer within the set top box to overflow or underflow. Additional issues, such as synchronization problems, could also occur.
Conventional solutions use hardware to compare a timestamp sent from the upstream head end equipment with an on chip local clock timestamp. The difference between the two timestamps is used to generate a difference signal. The difference signal is normally a digital signal that is presented outside of an integrated circuit (IC) seated inside the set top box. The digital difference signal is used to drive a digital to analog (D/A) converter. The digital to analog converter produces an analog signal having a magnitude proportional to the difference of the two timestamps. The analog signal would then drive an external voltage controlled oscillator (VCO). A frequency presented by the VCO is adjusted up or down and used to drive a system clock of the IC of the set top box. A feedback loop is created using external components, such as an analog to digital (A/D) converter, low pass filter and oscillator. Such conventional approaches implement several external discrete components. However, using discrete components creates a high cost and often results in high chip counts.
It would be desirable to match the frequency of a set top box to the frequency of upstream head end equipment by using software within the set top box.